package com.atguigu.principle.ocp.improve;

/**
 * @program: design-patterns
 * @author: yangshen
 * @description:
 * 1) 开闭原则（Open Closed Principle）是编程中最基础、最重要的设计原则
 *
 * 2) 一个软件实体如类，模块和函数应该对扩展开放(对提供方)，对修改关闭(对使用方)。用抽象构建框架，用实现扩展细节。
 *
 * 3) 当软件需要变化时，尽量通过扩展（新加一个方法）软件实体的行为来实现变化，而不是通过修改已有的代码来实现变化。
 *
 * 4) 编程中遵循其它原则，以及使用设计模式的就是为了遵循开闭原则。
 *
 * @create: 2022-01-12 20:06
 **/
public class Ocp {
    public static void main(String[] args) {

        GraphicEditor graphicEditor = new GraphicEditor();
        graphicEditor.drawShape(new RectangleShape());
        graphicEditor.drawShape(new CircleShape());
        graphicEditor.drawShape(new TriangleShape());
        //遵循开闭原则后，检验
        graphicEditor.drawShape(new OtherShape());
    }
}
